#include <iostream>
#include <stack>

/*

C++ 中的 std::stack 是一个模板类，表示一个后进先出（LIFO）的堆栈容器。它基于其他容器实现，通过默认使用 std::deque（双端队列）作为其底层容器，但你也可以指定其他容器类型。

以下是 std::stack 类的一些常见成员函数和操作：

构造函数：
    stack(): 默认构造函数。
    explicit stack(const ContainerType& cont): 使用给定容器 cont 构造一个堆栈。

操作：
    push(const T& value): 将元素 value 压入堆栈顶部。
    pop(): 弹出堆栈顶部的元素。
    top(): 返回堆栈顶部的元素。

容器操作：
    empty(): 检查堆栈是否为空。
    size(): 返回堆栈中元素的数量。

注意：
    std::stack 不提供直接访问元素的方法，因此无法像 std::vector 那样通过索引或迭代器直接访问堆栈中的元素。
*/

int main(int argc, char const *argv[])
{
    

    std::stack<int> stack{};

    for (int i = 0; i < 10; i++)
    {
        stack.push(rand());
    }

    std::cout << stack.size() << std::endl;
    stack.pop();
    std::cout << stack.size() << std::endl;

    std::cout << stack.top() << std::endl;

    bool a = stack.empty();
    std::cout << a << std::endl;

    return 0;
}
